package com.fatmeraid.service;

import com.fatmeraid.common.model.PageResult;
import com.fatmeraid.domain.Order;
import com.fatmeraid.vo.order.AddOrderVo;
import com.fatmeraid.vo.order.GetOrderVo;
import com.fatmeraid.vo.order.UpdateOrderVo;
import com.fatmeraid.vo.order.UpdateStatusVo;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public interface OrderService {
	/**
	 * 添加订单
	 *
	 * @param addOrderVo
	 * @return
	 */
	Long addOrder(AddOrderVo addOrderVo);

	/**
	 * 获取订单列表
	 * @param getOrderVo
	 * @return
	 */
	PageResult<Order> getOrderList(GetOrderVo getOrderVo);

	/**
	 * 获取订单详情
	 * @param orderId
	 * @return
	 */
	Order getOrderDetail(Long orderId);

	/**
	 * 修改订单收获信息
	 * @param updateOrderVo
	 * @return
	 */
	boolean updateOrder(UpdateOrderVo updateOrderVo);

	/**
	 * 修改订单状态
	 * @param updateStatusVo
	 * @return
	 */
	boolean updateOrderStatus(UpdateStatusVo updateStatusVo);

	/**
	 * 删除订单
	 * @param orderId
	 * @return
	 */
	boolean deleteOrder(String orderId);

	// 更新订单状态
	boolean updateOrderStatus(String tradeNo, String gmtPayment, String alipayTradeNo);

	/**
	 * 获取自己下单的订单
	 * @param getOrderVo
	 * @return
	 */
	PageResult<Order> getMyOrder(GetOrderVo getOrderVo);
}

